package com.ruoyi.web.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.web.domain.mes.MesMaterialIndetail;
import com.ruoyi.web.domain.mes.MesMaterialUse;
import com.ruoyi.web.domain.mes.MesMaterialUsedetail;
import com.ruoyi.web.domain.vo.MaterialInVo;
import com.ruoyi.web.domain.vo.MaterialUseVo;

/**
 * 物料领用Mapper接口
 * 
 * @author levicash
 * @date 2024-01-29
 */
public interface MesMaterialUseMapper 
{
    /**
     * 查询物料领用
     * 
     * @param id 物料领用主键
     * @return 物料领用
     */
    public MesMaterialUse selectMesMaterialUseById(Long id);

    /**
     * 查询物料领用列表
     * 
     * @param mesMaterialUse 物料领用
     * @return 物料领用集合
     */
    public List<MesMaterialUse> selectMesMaterialUseList(MesMaterialUse mesMaterialUse);

    /**
     * 新增物料领用
     * 
     * @param mesMaterialUse 物料领用
     * @return 结果
     */
    public int insertMesMaterialUse(MesMaterialUse mesMaterialUse);

    /**
     * 修改物料领用
     * 
     * @param mesMaterialUse 物料领用
     * @return 结果
     */
    public int updateMesMaterialUse(MesMaterialUse mesMaterialUse);

    /**
     * 删除物料领用
     * 
     * @param id 物料领用主键
     * @return 结果
     */
    public int deleteMesMaterialUseById(Long id);

    /**
     * 批量删除物料领用
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesMaterialUseByIds(Long[] ids);

    /**
     * 批量删除物料领用明细
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesMaterialUsedetailByMaterialuseIds(Long[] ids);
    
    /**
     * 批量新增物料领用明细
     * 
     * @param mesMaterialUsedetailList 物料领用明细列表
     * @return 结果
     */
    public int batchMesMaterialUsedetail(List<MesMaterialUsedetail> mesMaterialUsedetailList);
    

    /**
     * 通过物料领用主键删除物料领用明细信息
     * 
     * @param id 物料领用ID
     * @return 结果
     */
    public int deleteMesMaterialUsedetailByMaterialuseId(Long id);


    /**
     * 查询物料领用明细
     *
     * @param map 查询参数
     * @return 物料领用关联集合
     */
    public List<MaterialUseVo> selectMesMaterialUseDetailList(Map<String, Object> map);

    /**
     * 查询物料领用明细
     *
     * @param id 物料领用明细主键
     * @return 物料领用明细
     */
    public MesMaterialUsedetail selectMesMaterialUseDetailById(Long id);

    /**
     * 根据ids查询物料领用明细
     *
     * @param ids 物料领用明细主键集合字符串
     * @return 物料领用明细集合
     */
    public List<MesMaterialUsedetail> selectMesMaterialUseDetailByIds(Long[] ids);
}
